A “texture map” is well-known concept in computer graphics. A texture map is an array in memory which can be randomly accessed, where each element in the array includes a color value, also called a texel. A texture map is typically two-dimensional, but can be one-dimensional, three-dimensional (i.e., a “volume map”) or n-dimensional. Each element of a texture map (i.e., texel) is indexed by a set of “texture coordinates” or vector of size n corresponding to the number of dimensions in the map.
Most graphics processors have support for sampling a texture map to applying the texture map to an object. The object can be a three-dimensional object or a two-dimensional image (of which a computer display screen is a special case). In general, a texture map is defined as an array of color values in memory. When it is sampled, the texels at one or more texture coordinates are accessed from the texture map and combined to produce the desired value. This sampling can be called texture filtering, and enables scaling and interpolation of values at non-integer locations to reduce various artifacts such as blurring, aliasing, blocking and the like. Graphics processors also may provide support for compressed texture maps.
A graphics processor is a parallel processor which performs many concurrent computations in concurrently running threads. Often, the computations being performed by concurrently running threads are identical or nearly identical. This inefficiency is caused by the fact that graphics runtime libraries do not provide an effective mechanism for communication between threads. As an example, a processor can be concurrently computing the colors of multiple texels of an output image. If the output image is of high resolution, then neighboring pixels in the output image may have very similar values.